package com.munhrasoft.dinamica.business.entities;

import java.util.logging.Logger;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.SequenceGenerator;

@Entity
@NamedQueries(value = { @NamedQuery(name = "findImovelByMatricula", query = "SELECT im FROM Imovel im where im.matricula = :mat") })
@SequenceGenerator(name = "imovelSeq", initialValue = 1, allocationSize = 1)
public class Imovel {

	private static Logger logger = Logger.getLogger(Imovel.class.getName());

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "imovelSeq")
	private int id_imovel;
	private String endereco;
	private String matricula;
	private double recursosprop;
	private double fundogarantia;
	private double valorfinanc;
	private double valoraval;
	/*
	 * Quando existir garagem o valor compvenda total tem que ser a soma do
	 * valcompvendaapto com o valorcompvendagaragem quando nao existir garagem o
	 * valorcompvendatotal tem que ser igual ao valorcompvendaapto
	 */
	private double valcompvendatotal;
	boolean garagem;
	private double valorcompvendagaragem;
	private double valcompvendaapto;

	
	@Override
	public boolean equals(Object obj) {
		
		if (this.getMatricula().equals(((Imovel) obj).getMatricula())) {
			logger.info("Imovel equals true");
			return true;
		} else {
			logger.info("Imovel equals false");
			return false;
		}

		
	}

	public int getId_imovel() {
		return id_imovel;
	}

	public void setId_imovel(int id_imovel) {
		this.id_imovel = id_imovel;
	}

	public String getEndereco() {
		return endereco;
	}

	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public String getMatricula() {
		return matricula;
	}

	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}

	public double getRecursosprop() {
		return recursosprop;
	}

	public void setRecursosprop(double recursosprop) {
		this.recursosprop = recursosprop;
	}

	public double getFundogarantia() {
		return fundogarantia;
	}

	public void setFundogarantia(double fundogarantia) {
		this.fundogarantia = fundogarantia;
	}

	public double getValorfinanc() {
		return valorfinanc;
	}

	public void setValorfinanc(double valorfinanc) {
		this.valorfinanc = valorfinanc;
	}

	public double getValoraval() {
		return valoraval;
	}

	public void setValoraval(double valoraval) {
		this.valoraval = valoraval;
	}

	public boolean isGaragem() {
		return garagem;
	}

	public void setGaragem(boolean garagem) {
		this.garagem = garagem;
	}

	public double getValorcompvendagaragem() {
		return valorcompvendagaragem;
	}

	public void setValorcompvendagaragem(double valorcompvendagaragem) {
		this.valorcompvendagaragem = valorcompvendagaragem;
	}

	public double getValcompvendaapto() {
		return valcompvendaapto;
	}

	public void setValcompvendaapto(double valcompvendaapto) {
		this.valcompvendaapto = valcompvendaapto;
	}

	public double getValcompvendatotal() {
		return valcompvendatotal;
	}

	public void setValcompvendatotal(double valcompvendatotal) {
		this.valcompvendatotal = valcompvendatotal;
	}

}
